using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Collections;
using System.Drawing;
using System.Reflection;
using System.Workflow.ComponentModel.Compiler;
using System.Workflow.ComponentModel.Serialization;
using System.Workflow.ComponentModel;
using System.Workflow.ComponentModel.Design;
using System.Workflow.Runtime;
using System.Workflow.Activities;
using System.Workflow.Activities.Rules;

namespace TransTaskWithCompensation
{
    partial class WorkflowMain
    {
        #region Designer generated code

        /// <summary> 
        /// Required method for Designer support - do not modify 
        /// the contents of this method with the code editor.
        /// </summary>
        [System.Diagnostics.DebuggerNonUserCode]
        private void InitializeComponent()
        {
            this.CanModifyActivities = true;
            System.Workflow.ComponentModel.ActivityBind activitybind1 = new System.Workflow.ComponentModel.ActivityBind();
            System.Workflow.ComponentModel.ActivityBind activitybind2 = new System.Workflow.ComponentModel.ActivityBind();
            System.Workflow.Activities.CodeCondition codecondition1 = new System.Workflow.Activities.CodeCondition();
            System.Workflow.Activities.CodeCondition codecondition2 = new System.Workflow.Activities.CodeCondition();
            System.Workflow.Activities.CodeCondition codecondition3 = new System.Workflow.Activities.CodeCondition();
            System.Workflow.Activities.CodeCondition codecondition4 = new System.Workflow.Activities.CodeCondition();
            System.Workflow.Activities.CodeCondition codecondition5 = new System.Workflow.Activities.CodeCondition();
            System.Workflow.Activities.CodeCondition codecondition6 = new System.Workflow.Activities.CodeCondition();
            this.ProductDiscontinued = new System.Workflow.Activities.CodeActivity();
            this.CompensateFund = new System.Workflow.ComponentModel.CompensateActivity();
            this.ThrowActivityFault = new System.Workflow.ComponentModel.ThrowActivity();
            this.CommitPending = new System.Workflow.Activities.CodeActivity();
            this.ShipProduct = new System.Workflow.Activities.CodeActivity();
            this.ThrowFaultActivity = new System.Workflow.ComponentModel.ThrowActivity();
            this.CancelPending = new System.Workflow.Activities.CodeActivity();
            this.Pending = new System.Workflow.Activities.CodeActivity();
            this.TerminateProcess = new System.Workflow.ComponentModel.TerminateActivity();
            this.GotOrderToProcess = new System.Workflow.Activities.CodeActivity();
            this.CancelActivity = new System.Workflow.Activities.CodeActivity();
            this.DiscontinuedProductHandler = new System.Workflow.ComponentModel.FaultHandlerActivity();
            this.Discontinued = new System.Workflow.Activities.IfElseBranchActivity();
            this.Available = new System.Workflow.Activities.IfElseBranchActivity();
            this.SuspendHandleActivity = new System.Workflow.ComponentModel.SuspendActivity();
            this.ChargeFailed = new System.Workflow.Activities.IfElseBranchActivity();
            this.ChargeSucceed = new System.Workflow.Activities.IfElseBranchActivity();
            this.compensationHandlerActivity = new System.Workflow.ComponentModel.CompensationHandlerActivity();
            this.CheckChargeState = new System.Workflow.Activities.WhileActivity();
            this.SuspendProcess = new System.Workflow.ComponentModel.SuspendActivity();
            this.ServiceDisconnected = new System.Workflow.Activities.IfElseBranchActivity();
            this.ServiceAvailable = new System.Workflow.Activities.IfElseBranchActivity();
            this.CancellationWorkflowHandlerActivity = new System.Workflow.ComponentModel.CancellationHandlerActivity();
            this.FaultsHandling = new System.Workflow.ComponentModel.FaultHandlersActivity();
            this.CheckProductInStock = new System.Workflow.Activities.IfElseActivity();
            this.CheckOrderHandler = new System.Workflow.Activities.WhileActivity();
            this.CheckOrderPayment = new System.Workflow.Activities.IfElseActivity();
            this.TransactionScopePayOrder = new System.Workflow.ComponentModel.CompensatableTransactionScopeActivity();
            this.CheckBankService = new System.Workflow.Activities.WhileActivity();
            this.CheckOrderService = new System.Workflow.Activities.IfElseActivity();
            // 
            // ProductDiscontinued
            // 
            this.ProductDiscontinued.Description = "Order Process Discontinued";
            this.ProductDiscontinued.Name = "ProductDiscontinued";
            this.ProductDiscontinued.ExecuteCode += new System.EventHandler(this.ProductDiscontinued_ExecuteCode);
            // 
            // CompensateFund
            // 
            this.CompensateFund.Name = "CompensateFund";
            this.CompensateFund.TargetActivityName = "TransactionScopePayOrder";
            activitybind1.Name = "WorkflowMain";
            activitybind1.Path = "DiscontinuedWorkFlowProcessHandler";
            // 
            // ThrowActivityFault
            // 
            this.ThrowActivityFault.FaultType = typeof(TransTaskWithCompensation.DiscontinuedProductException);
            this.ThrowActivityFault.Name = "ThrowActivityFault";
            this.ThrowActivityFault.SetBinding(System.Workflow.ComponentModel.ThrowActivity.FaultProperty, ((System.Workflow.ComponentModel.ActivityBind)(activitybind1)));
            // 
            // CommitPending
            // 
            this.CommitPending.Name = "CommitPending";
            this.CommitPending.ExecuteCode += new System.EventHandler(this.CommitPending_ExecuteCode);
            // 
            // ShipProduct
            // 
            this.ShipProduct.Description = "Ship product for the order";
            this.ShipProduct.Name = "ShipProduct";
            this.ShipProduct.ExecuteCode += new System.EventHandler(this.ShipProduct_ExecuteCode);
            activitybind2.Name = "WorkflowMain";
            activitybind2.Path = "DiscontinuedWorkFlowProcessHandler";
            // 
            // ThrowFaultActivity
            // 
            this.ThrowFaultActivity.FaultType = typeof(TransTaskWithCompensation.DiscontinuedProductException);
            this.ThrowFaultActivity.Name = "ThrowFaultActivity";
            this.ThrowFaultActivity.SetBinding(System.Workflow.ComponentModel.ThrowActivity.FaultProperty, ((System.Workflow.ComponentModel.ActivityBind)(activitybind2)));
            // 
            // CancelPending
            // 
            this.CancelPending.Name = "CancelPending";
            this.CancelPending.ExecuteCode += new System.EventHandler(this.CancelPending_ExecuteCode);
            // 
            // Pending
            // 
            this.Pending.Description = "Withdraw Money from Account";
            this.Pending.Name = "Pending";
            this.Pending.ExecuteCode += new System.EventHandler(this.RequestPending_ExecuteCode);
            // 
            // TerminateProcess
            // 
            this.TerminateProcess.Name = "TerminateProcess";
            // 
            // GotOrderToProcess
            // 
            this.GotOrderToProcess.Description = "Get order from OrderService";
            this.GotOrderToProcess.Name = "GotOrderToProcess";
            this.GotOrderToProcess.ExecuteCode += new System.EventHandler(this.GotOrderToProcess_ExecuteCode);
            // 
            // CancelActivity
            // 
            this.CancelActivity.Description = "Cancel Order";
            this.CancelActivity.Name = "CancelActivity";
            this.CancelActivity.ExecuteCode += new System.EventHandler(this.CancelledActivity_ExecuteCode);
            // 
            // DiscontinuedProductHandler
            // 
            this.DiscontinuedProductHandler.Activities.Add(this.CompensateFund);
            this.DiscontinuedProductHandler.Activities.Add(this.ProductDiscontinued);
            this.DiscontinuedProductHandler.FaultType = typeof(TransTaskWithCompensation.DiscontinuedProductException);
            this.DiscontinuedProductHandler.Name = "DiscontinuedProductHandler";
            // 
            // Discontinued
            // 
            this.Discontinued.Activities.Add(this.ThrowActivityFault);
            this.Discontinued.Description = "Discontinued the order process";
            this.Discontinued.Name = "Discontinued";
            // 
            // Available
            // 
            this.Available.Activities.Add(this.ShipProduct);
            this.Available.Activities.Add(this.CommitPending);
            codecondition1.Condition += new System.EventHandler<System.Workflow.Activities.ConditionalEventArgs>(this.ProductCheckHandler);
            this.Available.Condition = codecondition1;
            this.Available.Description = "If Product is available";
            this.Available.Name = "Available";
            // 
            // SuspendHandleActivity
            // 
            this.SuspendHandleActivity.Error = "Order Service Unavailable";
            this.SuspendHandleActivity.Name = "SuspendHandleActivity";
            // 
            // ChargeFailed
            // 
            this.ChargeFailed.Activities.Add(this.ThrowFaultActivity);
            this.ChargeFailed.Name = "ChargeFailed";
            // 
            // ChargeSucceed
            // 
            codecondition2.Condition += new System.EventHandler<System.Workflow.Activities.ConditionalEventArgs>(this.OrderPaymentCheckHandler);
            this.ChargeSucceed.Condition = codecondition2;
            this.ChargeSucceed.Name = "ChargeSucceed";
            // 
            // compensationHandlerActivity
            // 
            this.compensationHandlerActivity.Activities.Add(this.CancelPending);
            this.compensationHandlerActivity.Description = "Compensation for withdraw";
            this.compensationHandlerActivity.Name = "compensationHandlerActivity";
            // 
            // CheckChargeState
            // 
            this.CheckChargeState.Activities.Add(this.Pending);
            codecondition3.Condition += new System.EventHandler<System.Workflow.Activities.ConditionalEventArgs>(this.ChargeStateCheckHandler);
            this.CheckChargeState.Condition = codecondition3;
            this.CheckChargeState.Name = "CheckChargeState";
            // 
            // SuspendProcess
            // 
            this.SuspendProcess.Error = "BankService Unavailable";
            this.SuspendProcess.Name = "SuspendProcess";
            // 
            // ServiceDisconnected
            // 
            this.ServiceDisconnected.Activities.Add(this.TerminateProcess);
            this.ServiceDisconnected.Name = "ServiceDisconnected";
            // 
            // ServiceAvailable
            // 
            this.ServiceAvailable.Activities.Add(this.GotOrderToProcess);
            codecondition4.Condition += new System.EventHandler<System.Workflow.Activities.ConditionalEventArgs>(this.OrderServiceCheckHandler);
            this.ServiceAvailable.Condition = codecondition4;
            this.ServiceAvailable.Name = "ServiceAvailable";
            // 
            // CancellationWorkflowHandlerActivity
            // 
            this.CancellationWorkflowHandlerActivity.Activities.Add(this.CancelActivity);
            this.CancellationWorkflowHandlerActivity.Description = "Abort the whole workflow ";
            this.CancellationWorkflowHandlerActivity.Name = "CancellationWorkflowHandlerActivity";
            // 
            // FaultsHandling
            // 
            this.FaultsHandling.Activities.Add(this.DiscontinuedProductHandler);
            this.FaultsHandling.Name = "FaultsHandling";
            // 
            // CheckProductInStock
            // 
            this.CheckProductInStock.Activities.Add(this.Available);
            this.CheckProductInStock.Activities.Add(this.Discontinued);
            this.CheckProductInStock.Description = "Check Product item is available or not";
            this.CheckProductInStock.Name = "CheckProductInStock";
            // 
            // CheckOrderHandler
            // 
            this.CheckOrderHandler.Activities.Add(this.SuspendHandleActivity);
            codecondition5.Condition += new System.EventHandler<System.Workflow.Activities.ConditionalEventArgs>(this.CheckOrderService_ExecuteCode);
            this.CheckOrderHandler.Condition = codecondition5;
            this.CheckOrderHandler.Name = "CheckOrderHandler";
            // 
            // CheckOrderPayment
            // 
            this.CheckOrderPayment.Activities.Add(this.ChargeSucceed);
            this.CheckOrderPayment.Activities.Add(this.ChargeFailed);
            this.CheckOrderPayment.Name = "CheckOrderPayment";
            // 
            // TransactionScopePayOrder
            // 
            this.TransactionScopePayOrder.Activities.Add(this.CheckChargeState);
            this.TransactionScopePayOrder.Activities.Add(this.compensationHandlerActivity);
            this.TransactionScopePayOrder.Name = "TransactionScopePayOrder";
            this.TransactionScopePayOrder.TransactionOptions.IsolationLevel = System.Transactions.IsolationLevel.Serializable;
            // 
            // CheckBankService
            // 
            this.CheckBankService.Activities.Add(this.SuspendProcess);
            codecondition6.Condition += new System.EventHandler<System.Workflow.Activities.ConditionalEventArgs>(this.BankServiceCheckHandler);
            this.CheckBankService.Condition = codecondition6;
            this.CheckBankService.Name = "CheckBankService";
            // 
            // CheckOrderService
            // 
            this.CheckOrderService.Activities.Add(this.ServiceAvailable);
            this.CheckOrderService.Activities.Add(this.ServiceDisconnected);
            this.CheckOrderService.Name = "CheckOrderService";
            // 
            // WorkflowMain
            // 
            this.Activities.Add(this.CheckOrderService);
            this.Activities.Add(this.CheckBankService);
            this.Activities.Add(this.TransactionScopePayOrder);
            this.Activities.Add(this.CheckOrderPayment);
            this.Activities.Add(this.CheckOrderHandler);
            this.Activities.Add(this.CheckProductInStock);
            this.Activities.Add(this.FaultsHandling);
            this.Activities.Add(this.CancellationWorkflowHandlerActivity);
            this.Description = "Workflow ";
            this.Name = "WorkflowMain";
            this.Initialized += new System.EventHandler(this.CreatedExecuteCode);
            this.Completed += new System.EventHandler(this.CompletedActivity_ExecuteCode);
            this.CanModifyActivities = false;

        }

        #endregion

        private CodeActivity ProductDiscontinued;
        private CompensateActivity CompensateFund;
        private FaultHandlerActivity DiscontinuedProductHandler;
        private IfElseBranchActivity ChargeFailed;
        private IfElseBranchActivity ChargeSucceed;
        private IfElseActivity CheckOrderPayment;
        private ThrowActivity ThrowFaultActivity;
        private WhileActivity CheckChargeState;
        private WhileActivity CheckOrderHandler;
        private SuspendActivity SuspendHandleActivity;
        private SuspendActivity SuspendProcess;
        private CodeActivity CommitPending;
        private WhileActivity CheckBankService;
        private TerminateActivity TerminateProcess;
        private IfElseBranchActivity ServiceDisconnected;
        private IfElseBranchActivity ServiceAvailable;
        private IfElseActivity CheckOrderService;
        private ThrowActivity ThrowActivityFault;
        private CancellationHandlerActivity CancellationWorkflowHandlerActivity;
        private CodeActivity CancelActivity;
        private CodeActivity CancelPending;
        private CompensationHandlerActivity compensationHandlerActivity;
        private FaultHandlersActivity FaultsHandling;
        private CodeActivity ShipProduct;
        private IfElseBranchActivity Discontinued;
        private IfElseBranchActivity Available;
        private IfElseActivity CheckProductInStock;
        private CodeActivity Pending;
        private CompensatableTransactionScopeActivity TransactionScopePayOrder;
        private CodeActivity GotOrderToProcess;







































































































































    }
}
